Short: JOTD Startup for JF Fabre HD Installs
Type: game/patch
Author: jffabre@ensica.fr (Jean-François Fabre)
Uploader: jffabre@ensica.fr (Jean-François Fabre)


As you could notice, I created and uploaded many HD-Install & fix programs for
non dos games, but all of them were standalone, and in case of an error in the
general loader routines, I had to remake the loader (relink) and upload again.

Bert Jahn had developped WHDLoad, which solves this problem because it allows to
load small, game-specific loaders and run them using its own degrade/hd/dos code.
This technique allows easy updates in case of bugs or new functionnalities.

That's what I decided to do myself. JST was born from a 8-hour adaptation of
my link library. It's an equivalent to WHDLoad but a bit more powerful
, as the system can be called in the slave loader, messages can be printed,
a gui can be opened, there are lots of cool functions, and much more.
It also allows easier programming of loaders (but WHDLoad is still cool!)

WHY THIS PROGRAM HERE:

Alone, this program is useless. I uploaded it because it's needed but not included
in my new installs and also Keith Krellwitz ones, because he uses my code.
This allows to save space in the archives and avoids leaving old versions of JST
around if a bug shows up.

JOTD HD Startup is © 1995-1997 Jean-François FABRE
JOTDStartup is © 1997 Jean-François FABRE


JOTDStartup is SHAREWARE!

From V0.3 I decided to ask a fee of US$10, 20DM, 7£ or 50FF to be able to become
a registered user. However, I will register whoever I think he or she did something
cool for me (already sent disks, money, sports cars, Sandra Bullock clones...).
Lots of people are already on the list. If you think I forgot you, contact me.

To register, send the money to:

Jean-François Fabre
19 Rue Emile Duploye
34500 BEZIERS

Specify your e-mail or send a blank disk with the money (for non-internet users),
and I'll send you the registered version of JST (+the latest installs for the
ones who sent a floppy)


If you think this is too expensive, you can use the "limited" shareware version.
It has no limitations compared to older free releases but the new features will
be reserved to registered version. However, if I fix a bug, it will be fixed in
both registered and shareware version of course.
All the future loaders will be compatible with the limited version.

I hope you understand JST and all the loaders were hard work for me, that's why
I decided it.
The money will be shared between me and the loaders programmers using JST
(2 for the moment, including me).


OPTIONS:

You can select the options:

- From the CLI by typing the arguments (JST ? for help)
- From the WB by activating/disabling the tooltypes

Some have effect only on loaders that support them. They will be noted are *OPTIONAL*
Some have effect on all loaders. They're noted as *GENERAL*

Here's a short description of the options.

- OBJNAME="object": lets you specify an object name (icon launch).

- NTSC (GENERAL): default for loader is PAL. NTSC changes this to NTSC (really?)

- TRAINER (OPTIONAL): activates trainer when there is one. It can be infinite lives, time, etc...

- QUIET (GENERAL): displays nothing and opens no window. No error messages, and no author message.
  Be sure that everything works OK before selecting this one.

- NOCACHES (GENERAL): Sets CACR to 0. All caches are disabled. 68060 supported.

- NOFAST (GENERAL): If you got crap sprites, this could help.

- HDLOAD (GENERAL): to save some memory, you can load from HD instead of caching all the files in RAM.
  It works for diskfiles and normal files.
  Useless in games with only 1 diskfile, use LOWMEM instead.

- LOWMEM (OPTIONAL): will not cache diskfiles in memory. Read directly from disk. Useful if you've
  got a A1200/020/NoFast. With normal files, LOWMEM consumes even less memory than HDLOAD. Some
  loaders may bring up and error message. In that case they don't support this option yet.

- NOOSSWAP (OPTIONAL): Disables in game HD loads/saves. Depending on the loaders, NOOSSWAP
  will try to access the floppy when you try to save/load a game, or will do nothing.
  If you don't select NOOSSWAP, if the game has some data to write, it will do it on your
  hard drive. It's rather safe (I've been using it for a while now) but you should avoid
  filesystems or disk caches that perform copyback caching (AFS, possible in Dynamicache).
  This is not generally harmful, except if you quit by a reset or the game locks. In that
  case, your hard drive can be unvalidated.

- DELAY (GENERAL): Waits 1 second before starting the game. Useful if you've just saved the promotion
  prefs (the loader opens an intuition screen) on a screen promoter like NewMode. You only
  have to save it once, but if you don't specify DELAY the first time you run one of my loaders.
  Once the prefs saved to disk properly, you can remove the DELAY option. You can also edit
  a program, change its name to HDStartup in the promoter window and save (NewMode).
  You should not promote the HDStartup screen. It's useless and can create problems. You won't be
  able to run a PAL game in multiscan anyway...
  This DELAY option can also be useful for low speed media. It allows the drive to stop.
  For the moment, only the Pinball Dreams patch allows to use this option.

- SAVEDIR (OPTIONAL): allows the user to specify a directory where the game data like hiscores
  or savegames will be saved/loaded. Some loaders with HD saves don't support it yet.
  This function is only available to registered users.

- BENICE (GENERAL): This one is for compatibility purposes, but "clean" installs should not
  use it, because it leaves ExecBase intact, and does not switch off the DMA. Leaving both
  can be unreliable and can trigger 81000005 GURUs in the case the loader still uses system
  routines (which is not recommended, but it's up to the programmer. I generally remove all
  system code in the game), and freezes if DMA is not deactivated/set properly by the game.

Some options are here for debug and developpement purpose only:

- DEBUG (GENERAL): useful only for bug reports. Makes a memory image on exit. Can be FULL or REGS
- LEAVEVBR (GENERAL): useful only for debugging purposes, and with a debugger such as Action-Replay,
          HRTMon or ThrillKill. Don't select it unless you want to debug.
- TEST (GENERAL): The loader will not start. Only the options selected will be displayed.
- VERBOSE (GENERAL): The loader will display information while initializing (memory, files...)

Examples from CLI:

JST MagicPocketsHD NOCACHES DELAY NTSC
JST HookHD NOFAST HDLOAD SAVEDIR=ram: (registered users only can use SAVEDIR)


PROBLEMS:

Some error messages can occur before or after the game has started:

- Object is not relocatable: the game-specific loader must not address variables in an
  absolute way (this error is more for programmers)

- Invalid Object: someone tried to load non-loader objects or other files

- Not enough memory: try to free some memory. Playing with NOFAST and HDLOAD can help too.

- Unsupported version: some games exist in different versions. I try to support some of them,
  but if the program does not recognize the version, it can display this message (it can crash too!).

- Exception occured: some illegal instruction was encountered while the game executes. Try NOCACHES and
  NOFAST to see if it helps.
- LINEF/MOVEP (68060) encountered: Same thing.

- Wrong virtual disk ID: patch error. Contact author.

- Diskfile not found, Disk Read Error: in HDLOAD mode, a file is missing.

- GetDiskPointer called while in LOWMEM mode: LOWMEM is not possible with this loader.

- Not enough memory while you've got plenty: check the priority of your different
  memory expansion card, because JST uses MEMF_REVERSE, and maybe that's the cause.

If the game simply hangs or resets, check that you don't have some MMU related program
running (enforcer, VMM...) or low level patches like Fastexec. My patches are reported
to work with softkicked amigas, though.
Some versions of the 68060.library can bring up problems too (gfx errors)

The game can crash if it finds an exception and there is not enough memory to restore the
system and display the exception message. Buy some more mem :-)


History:

V0.4b:
       - Sprites/display are reset better when an OS swap occurs (HDLOAD/LOWMEM mode)

V0.4a:
       - JST now opens an intuition screen of 4 colors (vs 16 in older versions)
       - Now JST does not allow system calls after SaveOSData (programmers only)
       - BENICE tooltype added for compatibilty (users who have problems with old loaders)
       - Removed a bug in argument parsing from CLI

V0.4:
       - Now JST loads the clock from battery backed up clock if found (registered only)

V0.3 : JST is now SHAREWARE. Some features are only accessible to registered users.

       - 1.3 compatibility restored. SAVEDIR still unsupported
       - VERBOSE tooltype added.
       - RNC\02 unpack method added to RNCDecrunch()
       - Alloc24BitMem() function added (for some games which do not like 32 bit fastmem)
       - Read/Write/DeleteUserFileHD() functions added to support SAVEDIR
       (developper(s?) please update your loaders which load/save user data to disk)
       - Slightly changed DMA handling on os swaps
       - Fixed a bug in dump register functionnality (DEBUG option)
       - Now the display comes up and the dumps are written after (DEBUG option).
       - SAVEDIR tooltype added (registered only)

V0.2e: internal release

V0.2d: NOOSSWAP no longer forbids HDLOAD or LOWMEM. It's now a user flag

V0.2c:
       - Fixed bug in LoadDisksFromName (Cadaver)
       - Changed task name to "JOTDStartup"

V0.2b:
       - Changed intuition screen depth from 8 colors to 16

V0.2a:
       - fixed bug with LoadDisksIndex and LOWMEM (Superfrog intro)

V0.2: first aminet release, few details changed

V0.1: developper release


STILL TO DO:

- Fix a bug in memory allocation which prevents the use of fast memory in some cases

- Prefetch diskfile data in memory to avoid too much os swaps in LOWMEM mode
  (Registered users only)

- Some other secret cool features for registered version :)

DISCLAIMER:

I'm not responsible for any damage caused directly or indirectly by this piece
of software.

DISTRIBUTION:

The shareware version of JST and my HD work can be distributed freely. However, I'd appreciate
that you drop me a line if you include it in a coverdisk or PD collection.
If you like (or you dislike) this piece of software, you can e-mail me.

The registered version of JST should NOT be distributed.

ME:

Visit my patch page, where all my HD work is gathered, along with some other
quality installers (all for original software), and some other interesting
related freeware stuff:

http://www.ensica.fr/~jffabre/patches.html

And my home page (totally stupid stuff):

http://www.ensica.fr/~jffabre/ (english)
http://www.ensica.fr/~jffabre/index_fr.html (french)

E-mail: jffabre@ensica.fr


Jeff
